// --------------------------------------------------------------------------------------------------------------------
// <copyright file="StyleCopViolationSuggestion.cs" company="StyleCop for ReSharper Development Team">
//   Copyright (c) StyleCop for ReSharper Development Team. All rights reserved.
// </copyright>
// <summary>
//   Defines the StyleCopViolationSuggestion type.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace StyleCop.For.ReSharper.Violations
{
    #region Using Directives

    using JetBrains.DocumentModel;
    using JetBrains.ReSharper.Daemon;

    using Microsoft.StyleCop;
    using Microsoft.StyleCop.CSharp;

    #endregion

    /// <summary>
    /// Highlighting class for a StyleCop Violation set to severity level Suggestion.
    /// </summary>
    [StaticSeverityHighlighting(ViolationSeverity)]
    public class StyleCopViolationSuggestion : StyleCopViolationBase
    {
        #region Constants and Fields

        /// <summary>
        /// The Violation severity.
        /// </summary>
        private const Severity ViolationSeverity = Severity.SUGGESTION;

        #endregion

        #region Constructors and Destructors

        /// <summary>
        /// Initializes a new instance of the <see cref="StyleCopViolationSuggestion"/> class.
        /// </summary>
        /// <param name="violation">
        /// The <see cref="Microsoft.StyleCop.ViolationEventArgs"/> instance containing the event data.
        /// </param>
        /// <param name="documentRange">
        /// Range where the Violation happened.
        /// </param>
        /// <param name="element">
        /// <see cref="CsElement"/>of the violation.
        /// </param>
        /// <param name="lineNumber">
        /// Line number of the violation.
        /// </param>
        public StyleCopViolationSuggestion(ViolationEventArgs violation, DocumentRange documentRange, CsElement element, int lineNumber)
            : base(violation, documentRange, element, lineNumber)
        {
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="StyleCopViolationSuggestion"/> class.
        /// </summary>
        /// <param name="tooltip">
        /// The tooltip.
        /// </param>
        public StyleCopViolationSuggestion(string tooltip)
            : base(tooltip)
        {
        }

        #endregion

        #region Properties

        /// <summary>
        /// Gets the severity of this highlighting.
        /// </summary>
        /// <value>
        /// </value>
        public override Severity Severity
        {
            get
            {
                return ViolationSeverity;
            }
        }

        #endregion
    }
}